package com.cskaoyan.mapper;

import com.cskaoyan.bean.Account;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AccountMapper {

    // where
    Account selectAccountById(@Param("id") Integer id);

    List<Account> selectAccountListSelectiveByAccount(@Param("account") Account account);

    // 传入一个数字，假如这个数字大于200，我们查询账户余额大于200的用户
    //  假如这个数字小于等200，我们查询账户余额小于等于200的用户
    List<Account> selectAccountListByMoney(@Param("money") Integer money);


    // 根据Id动态的修改Account
    // 这个account里面肯定有id值，假如我们传入了name，那么就把name改了，假如我们传入了money，那么我们就修改money
    int updateAccountSelectiveById(@Param("account") Account account);


    // in查询的场景
    List<Account> selectAccountListByIdList(List<Integer> ids);

    List<Account> selectAccountListByIdArray(int[] ids);


    // 批量插入account - 插入一个accountList
    int insertAccountList(@Param("accountList") List<Account> accountList);


    int insertAccountArr(@Param("accountArr") Account[] accountArr);

    // 插入一个Account，并且获取自增的主键的id值
    int insertAccount(@Param("account") Account account);

    // 入一个Account，并且获取自增的主键的id值
    int insertAccountUseGeneratedKeys(@Param("account") Account account);

}
